package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class ReflectDemo6 {
    public static void main(String[] args) throws Exception {
        Class cls=Class.forName("reflect.Person");
        Method method=cls.getMethod("say",String.class,int.class);
        //获取方法名
        String name =method.getName();
        System.out.println("方法名"+name);
        //获取返回值类型
        Class returnType=method.getReturnType();
        System.out.println("返回值类型"+returnType.getSimpleName());
        //获取该方法的参数个数
        int pc= method.getParameterCount();
        System.out.println("方法的参数个数是"+pc);
        //获取参数类型
        Class[]paramTypes=method.getParameterTypes();
        for (Class pt:paramTypes){
            System.out.println("参数类型"+pt.getSimpleName());
        }
        //获取方法的访问修饰符
        int modifiers=method.getModifiers();
        switch (modifiers){
            case Modifier.PUBLIC:
                System.out.println("访问权限为Public");
                break;
            case Modifier.PRIVATE:
                System.out.println("访问权限为private");
                break;
            case Modifier.PROTECTED:
                System.out.println("访问权限为protected");
                break;
            default:
                System.out.println("访问权限为default");
        }





    }
}
